<?php
/**
 * Created by PhpStorm.
 * User: icemoon
 * Date: 2021-08-07
 * Time: 21:56
 */

namespace App;


class HandlerChain
{

	private $handlers = [];
	public function addHandler(Handler $handler){
		$this->handlers[] = $handler;

	}

	public function handle(){

		//满足条件就不向后传递
		for($i=0; $i<count($this->handlers); $i++){
			$tempResult = $this->handlers[$i]->handle();
			if($tempResult){
				break;
			}
		}


		// 所有处理器都要执行一遍
//		for($i=0; $i<count($this->handlers); $i++){
//			$this->handlers[$i]->handle();
//		}

		// 本输出是下一个的输入
		// 请求不断像下一个节点传递
//		$last = null;
//		for($i=0; $i<count($this->handlers); $i++){
//			$last= $this->handlers[$i]->handle($last);
//		}
	}
}